// https://umijs.org/config/
import {defineConfig, utils} from 'umi';
import defaultSettings from './defaultSettings';
import proxy from './proxy';
import webpackPlugin from './plugin.config';

const {winPath} = utils; // preview.pro.ant.design only do not use in your production ;
// preview.pro.ant.design 专用环境变量，请不要在你的项目中使用它。

const {ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION, REACT_APP_ENV, GA_KEY} = process.env;
export default defineConfig({
  hash: true,
  antd: {},
  analytics: GA_KEY
    ? {
      ga: GA_KEY,
    }
    : false,
  dva: {
    hmr: true,
  },
  // 本地开发开启https
  devServer: {
    https: true,
    key: 'config/ssl/privkey.pem',
    cert: 'config/ssl/server.pem',
  },
  locale: {
    // default zh-CN
    default: 'zh-CN',
    // default true, when it is true, will use `navigator.language` overwrite default
    antd: true,
    baseNavigator: true,
  },
  dynamicImport: {
    loading: '@/components/PageLoading/index',
  },
  targets: {
    ie: 11,
  },
  // umi routes: https://umijs.org/zh/guide/router.html
  routes: [
    {
      path: '/user',
      component: '../layouts/UserLayout',
      routes: [
        {
          name: 'login',
          path: '/user/login',
          component: './user/login',
        },
      ],
    },
    {
      path: '/',
      component: '../layouts/SecurityLayout',
      routes: [
        {
          path: '/',
          component: '../layouts/BasicLayout',
          authority: ['admin', 'user'],
          routes: [
          //   // {
          //   //   path: '/',
          //   //   redirect: '/memCard.html',
          //   // },
          //   {
          //     path: '/RadarChart',
          //     name: 'admin',
          //     icon: 'crown',
          //     // authority: ['admin', 'user'],
          //     routes: [
          //       {
          //         path: '/RadarChart/IndicatorEdit',
          //         name: 'IndicatorEdit',
          //         icon: 'table',
          //         component: './RadarChart/components/IndicatorEdit',
          //         // authority:  ['admin', 'user'],
          //       }
          //       , {
          //         path: '/RadarChart/AbilityEdit',
          //         name: 'AbilityEdit',
          //         icon: 'table',
          //         component: './RadarChart/components/AbilityEdit',
          //         // authority:  ['admin', 'user'],
          //       }, {
          //         path: '/RadarChart/JobEdit',
          //         name: 'JobEdit',
          //         icon: 'table',
          //         component: './RadarChart/components/JobEdit',
          //         // authority:  ['admin', 'user'],
          //       }, {
          //         path: '/RadarChart/PersonalReport',
          //         name: 'PersonalReport',
          //         icon: 'table',
          //         component: './RadarChart/components/PersonalReport',
          //         // authority:  ['admin', 'user'],
          //       }
          //
          //
          //     ]
          //   },
          //   // {
          //   //   path: '/welcome',
          //   //   name: 'welcome',
          //   //   icon: 'smile',
          //   //   component: './Welcome',
          //   // },
          //   // {
          //   //   path: '/admin',
          //   //   name: 'admin',
          //   //   icon: 'crown',
          //   //   component: './Admin',
          //   //   authority: ['admin'],
          //   //   routes: [
          //   //     {
          //   //       path: '/admin/sub-page',
          //   //       name: 'sub-page',
          //   //       icon: 'smile',
          //   //       component: './Welcome',
          //   //       authority: ['admin'],
          //   //     }
          //   //   ],
          //   // },
          //   // {
          //   //   name: 'list.table-list',
          //   //   icon: 'table',
          //   //   path: '/list',
          //   //   component: './ListTableList',
          //   // },
          //   {
          //     name: 'mem.card',
          //     icon: 'table',
          //     path: '/memCard.html',
          //     authority: ['admin1213'],
          //     component: './MemCard',
          //   },
          //   // {
          //   //   path: '/task-list',
          //   //   name: 'task-list',
          //   //   icon: 'Table',
          //   //   component: './TaskList',
          //   //   //authority: ['admin'],
          //   // },
          //   // {
          //   //   path: '/tag-list',
          //   //   name: 'tag-list',
          //   //   icon: 'Table',
          //   //   component: './TagList',
          //   //   //authority: ['admin'],
          //   // }, {
          //   //   path: '/weight-chart',
          //   //   name: 'weight-chart',
          //   //   icon: 'Table',
          //   //   component: './WeightChart',
          //   //   //authority: ['admin'],
          //   // }, {
          //   //   path: '/repair-map',
          //   //   name: 'repair-map',
          //   //   icon: 'Table',
          //   //   component: './RepairMap',
          //   //   //authority: ['admin'],
          //   // },
          //   {
          //     component: './404',
          //   },
          //
            {
              path:'/Call/call',
              name: 'Call',
              icon: 'table',
              component: './Call'
            }
          ],
        },
        {
          component: './404',
        },
      ],
    },
    {
      component: './404',
    },
  ],
  // Theme for antd: https://ant.design/docs/react/customize-theme-cn
  theme: {
    // ...darkTheme,
    'primary-color': defaultSettings.primaryColor,
  },
  define: {
    REACT_APP_ENV: REACT_APP_ENV || false,
    ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION:
      ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION || '', // preview.pro.ant.design only do not use in your production ; preview.pro.ant.design 专用环境变量，请不要在你的项目中使用它。
  },
  ignoreMomentLocale: true,
  lessLoader: {
    javascriptEnabled: true,
  },
  cssLoader: {
    modules: {
      getLocalIdent: (context, _, localName) => {
        if (
          context.resourcePath.includes('node_modules') ||
          context.resourcePath.includes('ant.design.pro.less') ||
          context.resourcePath.includes('global.less')
        ) {
          return localName;
        }

        const match = context.resourcePath.match(/src(.*)/);

        if (match && match[1]) {
          const antdProPath = match[1].replace('.less', '');
          const arr = winPath(antdProPath)
            .split('/')
            .map(a => a.replace(/([A-Z])/g, '-$1'))
            .map(a => a.toLowerCase());
          return `antd-pro${arr.join('-')}-${localName}`.replace(/--/g, '-');
        }

        return localName;
      },
    },
  },
  manifest: {
    basePath: '/',
  },
  proxy: proxy[REACT_APP_ENV || 'dev'],
  chainWebpack: webpackPlugin,
});
